package com.zhangtai.modules.dto;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class DimissionInfoDto {


	@TableId
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
		private Long id;
		/**
	 * 员工id
	 */

		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		@ApiModelProperty(value = "员工id", required = false)
		private Long oid;

	/**
	 * 离职申请id
	 */

	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	@ApiModelProperty(value = "离职申请id", required = false)
	private Long dimissionId;
		/**
	 * 申请人
	 */
		@ApiModelProperty(value = "申请人", required = false)
		private String applyName;

	/**
	 * 录用员工工号
	 */
	@ApiModelProperty(value = "录用员工工号", required = false)
	private String code;

	/**
	 * 录用员工姓名
	 */
	@ApiModelProperty(value = "录用员工姓名", required = false)
	private String name;
	/**
	 * 拟录用岗位id
	 */

	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	@ApiModelProperty(value = "拟录用岗位id", required = false)
	private Long jobId;

	/**
	 * 拟录用岗位
	 */
	@ApiModelProperty(value = "拟录用岗位", required = false)
	private String jobname;


	/**
	 * * 拟录用公司
	 */
	@ApiModelProperty(value = "拟录用公司", required = false)
	private String orgname;
	/**
	 * 公司id
	 */
	@ApiModelProperty(value = "公司id", required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long orgId;


	/**
	 * 拟录用部门
	 */
	@ApiModelProperty(value = "拟录用部门", required = false)
	private String unitname;
	/**
	 * 部门id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	@ApiModelProperty(value = "部门id", required = false)
	private Long unitId;

	/**
     * 体系
	 */
	@ApiModelProperty(value = "体系", required = false)
	private String jobSystem;
	/**
	 * 体系id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	@ApiModelProperty(value = "体系id", required = false)
	private Long jobSystemId;

	/**
	 * 条线
	 */
	@ApiModelProperty(value = "条线", required = false)
	private String line;
	/**
	 * 条线id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	@ApiModelProperty(value = "条线id", required = false)
	private Long lineId;


	/**
	 * 预计入职时间
	 */
	@ApiModelProperty(value = "预计入职时间", required = false)
	private Date hiredate;

	/**
	 * 离职日期
	 */
	@ApiModelProperty(value = "离职日期", required = false)
	private Date dimissionTime;


	/**
	 * 工作年限 司龄
	 */
	@ApiModelProperty(value = "工作年限 司龄", required = false)
	private String workingYears;

	/**
	 * 离职方式
	 */
	@ApiModelProperty(value = "离职方式", required = false)
	private String mode;
	/**
	 * 离职类型
	 */
	@ApiModelProperty(value = "离职类型", required = false)
	private String dimissionType;

	/**
	 * 审批状态：0.待审批，1审批中 2. 已审批，3.作废
	 */
	@ApiModelProperty(value = "审批状态：0.待审批，1审批中 2. 已审批，3.作废", required = false)
	private Integer rurnoverStatus;


	/**
	 * 申请人id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	@ApiModelProperty(value = "申请人id", required = false)
	private Long applyOid;
	/**
	 * 申请人code
	 */
	@ApiModelProperty(value = "申请人code", required = false)
	private String applyCode;

	/**
	 * 申请日期
	 */
	@ApiModelProperty(value = "申请日期", required = false)
	private Date applyTime;
	/**
	 * 部门id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	@ApiModelProperty(value = "部门id", required = false)
	private Long applyDepId;
	/**
	 * 部门
	 */
	@ApiModelProperty(value = "部门", required = false)
	private String applyDepartment;

	/**
	 * 状态
	 */
	@ApiModelProperty(value = "状态", required = false)
	private Integer status;


	/**
	 * 职级id
	 */
	@ApiModelProperty(value = "职级id", required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long jobLevelId;

	/**
	 * 职级
	 */
	@ApiModelProperty(value = "职级", required = false)
	private String jobLevel;

	/**
	 * 职级类别，1：专业2:管理，
	 */
	@ApiModelProperty(value = "职级类别，1：专业2:管理，", required = false)
	private Integer jobLevelType;

	/**
	 * 交接人
	 */
	@ApiModelProperty(value = "交接人", required = false)
	private String associate;


	/**
	 * bpm详情
	 */
	@ApiModelProperty(value = "bpm详情", required = false)
	private String bpmDetailUrl;


	/**
	 * 身份证号
	 */
	@ApiModelProperty(value = "身份证号", required = false)
	private String idcard;

	/**
	 * 手机号码
	 */
	@ApiModelProperty(value = "手机号码", required = false)
	private String mobile;

	/**
	 * 离职原因
	 */
	@ApiModelProperty(value = "离职原因", required = false)
	private String remark;


	/**
	 * 附件地址
	 */
	@ApiModelProperty(value = "附件地址", required = false)
	private String annexUrl;

	/**
	 * 附件地址
	 */
	@ApiModelProperty(value = "附件地址", required = false)
	private List<String> fileUrlList;


	/**
	 * 主管辅导
	 */
	@ApiModelProperty(value = "主管辅导", required = false)
	private Integer spervisorCoaching;
	/**
	 * 薪资报酬
	 */
	@ApiModelProperty(value = "薪资报酬", required = false)
	private Integer slaryCompensation;
	/**
	 * 工作时间
	 */
	@ApiModelProperty(value = "工作时间", required = false)
	private Integer operatingHours;
	/**
	 * 培训获得
	 */
	@ApiModelProperty(value = "培训获得", required = false)
	private Integer trainingObtained;
	/**
	 * 升迁机会
	 */
	@ApiModelProperty(value = "升迁机会", required = false)
	private Integer promotionOpportunity;
	/**
	 * 沟通渠道
	 */
	@ApiModelProperty(value = "沟通渠道", required = false)
	private Integer communicationChannel;

	/**
	 * 原因
	 */
	@ApiModelProperty(value = "原因", required = false)
	private String reason;

	/**
	 * 附件路径
	 */
	@ApiModelProperty(value = "附件路径", required = false)
	private String urlIds;

	/**
	 * 处理状态  1未处理  2已处理
	 */
	@ApiModelProperty(value = "处理状态  1未处理  2已处理", required = false)
	private Integer processingStatus;


}
